﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Caduceu.Estudos.Erros;

namespace Caduceu.Estudos.Entidades
{
    public class Lancamento : EntidadeBase
    {
        private const string ERR_SO_VLR_ACIMA_ZERO = "ERR_0005";
        private const string ERR_NAO_PERMITE_MOVS_MAIS_DE_2_CASAS = "ERR_0006";

        private decimal valor;

        public virtual string NumeroContaDebito { get; set; }
        public virtual string NumeroContaCredito { get; set; }

        public virtual decimal Valor
        {
            get { return valor; }
            set
            {
                if (value <= 0)
                    throw new InvalidOperationException(Erros.Messages.GetMessage2(ERR_SO_VLR_ACIMA_ZERO));

                if ((value - Math.Round(value, 2)) != 0)
                    throw new InvalidOperationException(Erros.Messages.GetMessage2(ERR_NAO_PERMITE_MOVS_MAIS_DE_2_CASAS));

                valor = value;
            }
        }
    }
}
